Cloud-based provision of infrastructure as a service (IaaS), platforms as a service (PaaS), and software as a service (SaaS) have gained in popularity. A cloud service provider provisions any number of machines (e.g., having a single processor or multiple processors or multi-core processors, etc.) which machines can run an operating system (e.g., Linux) directly on the hardware or the machines can run virtual operating systems (e.g., using virtual machines, possibly including a hypervisor). This flexibility is a boon to cloud service providers and to their customers (e.g., tenants) alike, yet the cloud model introduces new problems to be solved. For example, while the cloud provisioning model makes it easy to deploy software applications to many nodes (e.g., tens, hundreds, thousands or more), the cloud provisioning model does not address the tasks involved in upgrading those applications. Upgrading software in an instance is generally accompanied by a blackout or brownout while the software is being upgraded. While the cloud provisioning model makes it convenient to deploy many nodes in a cascade, the blackout or brownout experienced while the software is being upgraded can become quite severe, especially in mission-critical deployments. Still worse, in a deployed client-server situation where many (e.g., tens, hundreds, thousands or more) clients are connected to a single server, a blackout or brownout can affect many tens, hundreds, thousands or more users.
What's needed is a technique or techniques to minimize or eliminate blackouts or brownouts while the cloud-deployed server software is being upgraded. There is a need for an improved approach since none of the legacy technologies perform the herein-disclosed techniques for non-invasive upgrades of server components in cloud deployments.